1. The Field of the Invention
The present invention relates to synchronizing time stamp counters of ports within a domain and to synchronizing start, stop and trigger signals to ports in the domain. More particularly, the present invention relates to systems and methods for synchronizing the time stamp counters of ports in a domain across different boxes and across different technologies or protocols.
2. Background and Relevant Art
Computer networks are ubiquitous today. Almost every home and business is connected to the Internet and many have their own internal networks. Not surprisingly, those internal networks are also connected with other computer networks. One of the primary advantages of computer networks is the ability to send data from one computer to another.
The task of routing data from one computer to another computer is not always a simple task. Usually, the data is routed from one computer or network to another computer or network using routers, switching networks, or other types of gateways. These gateways or switching networks often provide physical connections or ports to various networks.
The ports are often provided, for example, on a card that is often contained in a chassis with a common backplane or bus. The chassis is often mounted to a rack. The chassis is modular thereby allowing multiple chassis to be mounted to the rack. Each chassis supports a particular number of blades and each blade supports a particular number of ports. The number of blades supported by a particular box and the number of ports supported by a particular blade and the distance from one chassis to another is hardware dependent, but the present invention is not limited by hardware constraints. These chassis thus provide access to a large number of ports that can be used for various purposes.
It is often desirable to associate some of these ports into a single logical grouping or domain. For example, assume that the boxes provide a number of Ethernet ports. Data is often sent from one of the ports to another port. The user may want to know the time delay for data sent from one port through to another. The problem that arises in these situations, especially if the Ethernet ports are not tied to a common blade, backplane, or bus, is that the respective clocks are different and it is not possible to accurately correlate actions that occur at the ports because there is no common reference frame. This is particularly true in situations where the port technologies or port protocols differ or the ports are separated by some distance.
For example, creating a domain of ports where more than one port protocol is used makes it difficult to correlate the timing aspects of the ports. The clock signals or oscillators that drive the ports of different protocols in the domain are typically different. Some of the ports, for example, may be Ethernet ports while other ports on a different box or on the same box are Fibre Channel ports. In addition, each port may be driven by a different clock, frequency or other control signal.
Because of the inherent differences between ports, applications such as protocol analysis, debugging and other applications that relate events on the ports in a user-defined domain are difficult to correlate because no common timestamp can be established between the various ports. For instance, each port is typically associated with a time stamp counter that can produce time stamp values. Time stamp values are often used to analyze the data that was present on the ports when a particular event or condition is detected.
The primary problem is synchronizing the time stamp counters such that the time stamp values associated with various ports can be used to identify the data that was present on the ports at a given time or during a certain time interval and be used to measure the latency from one port to another and be used to control the domain of ports simultaneously creating one large virtual port with a common time stamp counter. This large virtual port that includes the physical ports in a user defined domain can be used to simultaneously monitor data and troubleshoot many interconnection issues between disparate devices (routers, switches, host computers, adapter cards, etc.) in a network that may be of different protocols (Fibre Channel, Ethernet, etc.) and may not be geographically co-located.